package com.office.meeting.invited.mapper;

import com.office.common.core.domain.entity.SysUser;
import com.office.meeting.invited.pojo.dto.InviteDTO;
import com.office.meeting.invited.pojo.dto.InvitedDTO;
import com.office.meeting.invited.pojo.vo.InviteQueryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author: 柒月
 * @date: 2025/5/12 下午4:27
 * @version: 1.0
 */

@Mapper
public interface InviteMapper {

    /**
     * 如果该用户已经同意或者拒绝就代表没有邀请了
     *
     * @param loginUserId 当前的登录用户的id
     * @return 根据当前的登录用户的id查询邀请人所有没有被禁用和删除的人的信息，部门，职位
     */
    List<InviteDTO> selectAllInfo(@Param("loginUserId") Long loginUserId);

    /**
     * 如果该用户已经同意或者拒绝就代表没有邀请了
     *
     * @param inviteQuery 前端的查询条件
     * @param loginUserId 登录用户的id
     * @return 返回条件查询后的用户信息
     */
    List<InviteDTO> selectTermsUserInfo(@Param("inviteQuery") InviteQueryVO inviteQuery, @Param("loginUserId") Long loginUserId);

    /**
     * @param ids 要删除的会议的
     * @return 返回影响的行数
     */
    Long delTermsByids(@Param("ids") List<Long> ids);

    /**
     * @param invitedDTO 前端的邀请会议的数据
     * @return 返回插入的条数
     */
    Long insertaddTerms(@Param("invitedDTO") InvitedDTO invitedDTO);

    /**
     * 查询当前登录用户，邮箱和名字
     *
     * @param loginUserId 登录用户的id
     * @return 用户信息
     */
    @Select("select email,nick_name from sys_user where user_id = #{loginUserId}")
    SysUser getLoginUserById(Long loginUserId);
}
